package self.zhangkang.chart.view.kline

import android.content.Context
import android.graphics.DashPathEffect
import self.zhangkang.chart.tools.dp2px
import self.zhangkang.chart.tools.sp2px

/**
 * @author : Android-张康
 * created on: 2023/5/5 10:58
 * description: K线中需要使用的大小资源
 */
class KLineViewDimen(context: Context) {

    /**
     * 顶部的空间
     */
    val mainTopSpace = 24.dp2px(context)

    /**
     * 主图的高度
     */
    val mainHeight = 170.dp2px(context)

    /**
     * 时间的高度
     */
    val dateSpace = 18.dp2px(context)

    /**
     * 时间距顶部的距离
     */
    val datePaddingTop = 2.dp2px(context)

    /**
     * 副图的高度
     */
    val subplotHeight = 50.dp2px(context)

    /**
     * 副图之间的距离
     */
    val subplotSpace = 24.dp2px(context)

    /**
     * 边框线的宽度
     */
    val borderLineStrokeWidth = 0.5F.dp2px(context)

    /**
     * 蜡烛图线的宽度
     */
    val candlestickLineWidth = 1.dp2px(context)

    /**
     * 指标线的宽度
     */
    val indexLineStrokeWidth = 1.dp2px(context)

    /**
     * 高亮线的宽度
     */
    val highlightLineWidth = 1F.dp2px(context)

    /**
     * 最高价或最低价距线的距离
     */
    val maxOrMinPriceTextPaddingLine = 3.dp2px(context)

    /**
     * 文字和线之间的距离
     */
    val textPaddingLine = maxOrMinPriceTextPaddingLine

    /**
     * 复权的文字大小
     */
    val adjustTextSize = 16.sp2px(context)

    /**
     * 坐标文字大小
     */
    val ordinateTextSize = 10.sp2px(context)


    /***
     *  值与值之间的横向距离
     */
    val valueHorizontalSpace = 8.dp2px(context)

    /***
     *  值与值之间的竖向距离
     */
    val valueVerticalSpace = 8.dp2px(context)

    /**
     * 副图指标名称距边框的宽度
     */
    val subplotMargin = 1.dp2px(context)

    /**
     * 副图指标名称描边宽度
     */
    val subplotLineWidth = 0.65F.dp2px(context)

    /**
     * MACD 线的宽度
     */
    val macdStrokeWidth = 1.dp2px(context)

    val indexValueTextSize = 10.sp2px(context)

    val volumeRectSpace = 0.5F.dp2px(context)

    /**
     * 日期文字大小
     */
    val dateTextSize = 11.sp2px(context)

    /**
     * 虚线配置
     */
    val dashPathEffect = DashPathEffect(floatArrayOf(12F, 8F), 0F)

    /**
     * 内容距离顶部和底部的空间
     */
    val lineTopBottomSpace = 0.005F
}